package Common;

import Commande.Command;

public interface Horloge {
	
	/**
	 * Appel periodique de l operation execute() de cmd,
 	 * toutes les periodeEnSecondes secondes,
 	 * avec une precision d une milliseconde.
 	 * 
	 * @param cmd
	 * @param periodeEnSeconde
	 */
	void activerPeriodiquement(Command cmd, float periodeEnSeconde);
	
	/**
	 * Appel de l operation execute() de cmd,
	 * apres un delai de delaiEnSecondes secondes,
 	 * avec une precision d une milliseconde.
	 * @param cmd
	 * @param delaiEnSecondes
	 */
	void activerApresDelai(Command cmd, float delaiEnSecondes);
	
	/**
	 * Desactive le timer lie a la commande passee en parametre
	 * @param cmd
	 */
	void desactiver(Command cmd);

}
